//
//  ALGeneralController.m
//  Ummy.G
//
//  Created by 安林 on 16/10/6.
//  Copyright © 2016年 安林. All rights reserved.
//

#import "ALGeneralController.h"
#import "UIBarButtonItem+buttonItem.h"
#import "ALGeneralCell.h"
#import "SDImageCache.h"


@interface ALGeneralController ()<UITableViewDataSource,UITableViewDelegate>

@property (nonatomic,strong) UITableView * tableView;
@property (nonatomic,strong)NSArray *leftArr;
@property (nonatomic,strong)NSArray *rightArr;


@end

@implementation ALGeneralController

- (void)viewDidLoad {
    [super viewDidLoad];
    
    [self addItem];
    
    self.tableView = [[UITableView alloc]initWithFrame:[UIScreen mainScreen].bounds];
    
    self.tableView.delegate = self;
    self.tableView.dataSource = self;
    
    //取消tableView的分割线
    self.tableView.separatorStyle = UITableViewCellSeparatorStyleNone;
    
    [self.view addSubview:self.tableView];
    
    _leftArr = @[@"非wifi环境下省流量模式",@"网络诊断",@""];
    _rightArr=@[@"",@"",@"OK"];
}


- (void)addItem{
    
    //------返回---------
    UIBarButtonItem *backR = [UIBarButtonItem barButtonItemWith:[UIButton buttonWithType:UIButtonTypeCustom] addTarget:self action:@selector(backRight) andImage:@"navigationButtonReturn" andHighlighted:nil];
    
    self.navigationItem.leftBarButtonItem =backR;
}



- (void)backRight{
    //没有push的时候用这个
    //[self dismissViewControllerAnimated:YES completion:nil];
    
    //push后，用这个返回
    [self.navigationController popToRootViewControllerAnimated:YES];
}

#pragma mark 返回多少行
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{
    return 3;
}

#pragma mark 返回cell
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{
    
    static NSString * ID = @"general";
    ALGeneralCell * cell = [tableView dequeueReusableCellWithIdentifier:ID];
    if (!cell) {
        cell = [ALGeneralCell loadALGeneralCell];
    }
    cell.leftLabel.text = self.leftArr[indexPath.row];
    cell.rightLabel.text = self.rightArr[indexPath.row];
    
    cell.selectionStyle = UITableViewCellSelectionStyleNone;
    
    if (indexPath.row==2) {
        // 获取沙盒路径
        NSString *cachePath = [NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES)lastObject];
        NSUInteger pathSize = [self getCachesSizePath:cachePath];
        if (pathSize > 1000 * 1000) {
            cell.textLabel.text = [NSString stringWithFormat:@"清除缓存(%0.2lfMB)",pathSize*1.0/1000/1000];
        }else if (pathSize > 1000){
            cell.textLabel.text = [NSString stringWithFormat:@"清除缓存(%0.2lfKB)",pathSize*1.0/1000];
        }else{
            cell.textLabel.text = [NSString stringWithFormat:@"清除缓存(%ldB)",pathSize];
        }
        
    }
    return cell;
}

#pragma mark 自定义cell的行高
-(CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath{
    return 44;
}


#pragma mark 删除缓存，删除cache里面的文件
- (NSInteger)getCachesSizePath:(NSString *)path{
    
    /*
     // 1.获取沙盒路径
     NSString *cachesPath = [NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES)lastObject];
     
     // 2.拼接路径
     NSString *defaultPath = [cachesPath stringByAppendingPathComponent:@"default"];
     */
    
    // 3.获取文件夹的属性  （首先得建一个文件管理者）
    NSFileManager *manager = [NSFileManager defaultManager];
    NSUInteger pathSize = 0;//初始化为0
    
    // 获取路径下所有的子路径，目的是为了获得文件的大小
    NSArray *array = [manager subpathsAtPath:path];
    // 遍历出所有的子路径，目的是拼接路径
    for (NSString *path1 in array) {
        // 拼接路径
        NSString *detailPath = [path stringByAppendingPathComponent:path1];
        // 求出每个文件的大小，让他们实现累加和；用一个变量来接收
        pathSize += [manager attributesOfItemAtPath:detailPath error:nil].fileSize;
    }
    return pathSize;
    // NSLog(@"%ld",pathSize);
    // NSLog(@"%@",array);
    
    
    /*
     // 千万不要直接获取文件夹的属性，这样获取的字节要把真实的小很多
     NSDictionary *dict = [manager attributesOfItemAtPath:defaultPath error:nil];
     NSLog(@"%@",dict);
     */
}




// 监听选中的某一行，点击“清除缓存”时的那一行,"清除缓存"只能清除caches里的，千万不能删除偏好设置里的东西
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{
    if (indexPath.row ==2) {
        // 清除缓存 就是删除caches文件里面的文件夹，并不是caches文件
        // 建立文件管理者
        NSFileManager *manger = [NSFileManager defaultManager];
        // 删除文件（切记：删除的是里面的文件）
        NSString *cachesPath = [NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES)lastObject];
        
        NSArray *arrPath = [manger contentsOfDirectoryAtPath:cachesPath error:nil];
        // 遍历（获取里面的文件）
        for (NSString *path in arrPath) {
            // 拼接路径
            NSString *detailPath = [cachesPath stringByAppendingPathComponent:path];
            
            // 删除，一个挨着一个的删除
            [manger removeItemAtPath:detailPath error:nil];
        }
        [self.tableView reloadData];
        //NSLog(@"%@",NSHomeDirectory());
    }
}




@end
